# Be sure to restart your web server when you modify this file.

# Uncomment below to force Rails into production mode when 
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION

# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
  # Settings in config/environments/* take precedence over those specified here
  
  # Skip frameworks you're not going to use (only works if using vendor/rails)
  # config.frameworks -= [ :action_web_service, :action_mailer ]

  # Only load the plugins named here, by default all plugins in vendor/plugins are loaded
  # config.plugins = %W( exception_notification ssl_requirement )

  # Add additional load paths for your own custom dirs
  # config.load_paths += %W( #{RAILS_ROOT}/extras )

  # Force all environments to use the same logger level 
  # (by default production uses :info, the others :debug)
  # config.log_level = :debug

  # Use the database for sessions instead of the file system
  # (create the session table with 'rake db:sessions:create')
  # config.action_controller.session_store = :active_record_store

  # Use SQL instead of Active Record's schema dumper when creating the test database.
  # This is necessary if your schema can't be completely dumped by the schema dumper, 
  # like if you have constraints or database-specific column types
  # config.active_record.schema_format = :sql

  # Activate observers that should always be running
  # config.active_record.observers = :cacher, :garbage_collector

  # Make Active Record use UTC-base instead of local time
  # config.active_record.default_timezone = :utc
  
  # See Rails::Configuration for more options
end

# Add new inflection rules using the following format 
# (all these examples are active by default):
#Inflector.inflections do |inflect|
#   inflect.plural /^(ox)$/i, '\1en'
#   inflect.singular /^(ox)en/i, '\1'
#   inflect.irregular 'person', 'people'
#   inflect.uncountable %w( fish sheep )
#end

#################
# SIPROC rules  #
#################
Inflector.inflections do |inflect|  
  # acao criminal - acoes criminais 
  inflect.plural /^(ac)ao(_?crimina)l$/i, '\1oes\2is'
  inflect.singular /^(ac)oes(_?crimina)is$/i, '\1ao\2l'
  
  # acao c�vel - acoes c�veis
  inflect.plural /^(ac)ao(_?cive)l$/i, '\1oes\2is'
  inflect.singular /^(ac)oes(_?cive)is$/i, '\1ao\2l'

  # *ao - *oes, *aes, *aos
  inflect.plural /ao$/i, 'oes'
  inflect.singular /oes$/i, 'ao'
  inflect.singular /aes$/i, 'ao'
  inflect.singular /aos$/i, 'ao'
  
  # promotor - promotores
  inflect.plural /^(promotor)$/i, '\1es'
  inflect.singular /^(promotor)es$/i, '\1'
end

# Add new mime types for use in respond_to blocks:
# Mime::Type.register "text/richtext", :rtf
# Mime::Type.register "application/x-mobile", :mobile

# Include your application configuration below

require 'cpf'

silence_warnings do
  Date::MONTHNAMES = [nil] + %w(Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro)
  Date::DAYNAMES = %w(Domingo Segunda-Feira Terça-Feira Quarta-Feira Quinta-Feira Sexta-Feira Sábado)
  Date::ABBR_MONTHNAMES = [nil] + %w(Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez)
  Date::ABBR_DAYNAMES = %w(Dom Seg Ter Qua Qui Sex Sab)
end
 
class Time
  alias :strftime_nolocale :strftime

  def strftime(format)
    format = format.dup
    format.gsub!(/%a/, Date::ABBR_DAYNAMES[self.wday])
    format.gsub!(/%A/, Date::DAYNAMES[self.wday])
    format.gsub!(/%b/, Date::ABBR_MONTHNAMES[self.mon])
    format.gsub!(/%B/, Date::MONTHNAMES[self.mon])
    self.strftime_nolocale(format)
  end
end

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:padrao => "%A, %d %B, %Y")

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  class_style = "field_with_error"
  if html_tag =~ /<(input|textarea|select)[^>]+class=/
    class_attribute = html_tag =~ /class=['"]/
    html_tag.insert(class_attribute + 7, "#{class_style} ")
  elsif html_tag =~ /<(input|textarea|select)/
    first_whitespace = html_tag =~ (/\s/)
    html_tag.insert(first_whitespace, " class=\"#{class_style}\"")
  end
  html_tag
end

ActiveRecord::Errors.default_error_messages = 
{
  :accepted       => "deve ser aceito",
  :blank          => "não pode estar em branco",
  :confirmation   => "não corresponde com o campo de confirmação",
  :empty          => "não pode estar vazio",
  :exclusion      => "está reservado",
  :inclusion      => "não está incluído na lista",
  :invalid        => "é inválido",
  :not_a_number   => "não é um número",
  :taken          => "já foi escolhido",
  :too_long       => "é muito longo (máximo %d caracteres)",
  :too_short      => "é muito curto (mínimo %d caracteres)",
  :wrong_length   => "deve possuir %d caracteres"
}
